如何使用SQL语句为 Azure SQL 创建用户
首先在 azure 管理门户中找到目标数据库,并进入该数据库所在的服务器的管理页面,将自己的账号添加为 Active Directory 管理员,以保证自己有足够的权限。
然后在 master
数据库中执行以下 SQL 语句:
-- 创建登录名
CREATE LOGIN [login_name] WITH PASSWORD = N'password'
GO
登录名只能登录sqlserver服务器,但是不能访问数据库资源。存储于在master数据库的syslogins表中。
执行完毕之后,再在想要添加用户的目标数据库中执行以下 SQL 语句:
-- 创建用户
CREATE USER user_name FROM LOGIN login_name WITH DEFAULT_SCHEMA = dbo
GO
EXEC sp_addrolemember N'db_owner', N'user_name'
GO
至此,用户已经创建完成,可以使用新创建的用户来登录 Azure SQL 数据库了。
附表: 常见数据库角色
role | type | description |
---|---|---|
sysadmin | server | 执行SQL Server中的任何动作 |
serveradmin | server | 配置服务器设置 |
setupadmin | server | 安装复制和管理扩展过程 |
securityadmin | server | 管理登录和CREATE DATABASE的权限以及阅读审计 |
processadmin | server | 管理SQL Server进程 |
dbcreator | server | 创建和修改数据库 |
diskadmin | server | 管理磁盘文件 |
db_owner | db | 可以执行数据库中技术所有动作的用户 |
db_accessadmin | db | 可以添加、删除用户的用户 |
db_datareader | db | 可以查看所有数据库中用户表内数据的用户 |
db_datawriter | db | 可以添加、修改或删除所有数据库中用户表内数据的用户 |
db_ddladmin | db | 可以在数据库中执行所有DDL操作的用户 |
db_securityadmin | db | 可以管理数据库中与安全权限有关所有动作的用户 |
db_backoperator | db | 可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行) |
db_denydatareader | db | 不能看到数据库中任何数据的用户 |
db_denydatawriter | db | 不能改变数据库中任何数据的用户 |
db_denydatawriter | db | 不能改变数据库中任何数据的用户 |
public | db | 一种特殊的角色,每个合法用户都属于该角色; 提供所有默认权限。 |